import java.util.Arrays;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:${USER}
 * Date:${YEAR}-${MONTH}-${DAY}
 * ${TIME}
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 读取数组长度n
        int n = in.nextInt();
        // 创建数组arr并读取n个整数
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = in.nextInt();
        }
        // 读取查询次数q
        int q = in.nextInt();

        // 创建dp数组，dp[i]表示前i个元素中第二大的值
        int[] dp = new int[n + 10];

        // 初始化前两个元素的最大值和第二大值
        int max = Math.max(arr[0], arr[1]);  // 前两个元素的最大值
        int max2 = Math.min(arr[0], arr[1]); // 前两个元素的第二大值
        dp[2] = max2;  // 前2个元素的第二大的值就是max2

        // 计算dp数组的值
        for (int i = 3; i <= n; i++) {
            if (max <= arr[i - 1]) {
                // 如果当前元素比max大，则更新max和max2
                dp[i] = max;      // 第二大的值变为之前的max
                max2 = max;       // 更新第二大值
                max = arr[i - 1]; // 更新最大值
            } else if (max2 >= arr[i - 1]) {
                // 如果当前元素不大于max且不大于max2，则第二大的值不变
                dp[i] = max2;
            } else {
                // 如果当前元素介于max和max2之间，则更新max2
                dp[i] = arr[i - 1];
                max2 = arr[i - 1];
            }
        }

        // 处理q次查询
        while (q-- != 0) {
            int qi = in.nextInt();  // 读取查询的位置
            System.out.println(dp[qi]);  // 输出前qi个元素中第二大的值
        }
    }
}